package com.zy.explore.design.patterns.observer.eventbus;

import com.google.common.eventbus.EventBus;

/**
 * 直接使用guava的事件总线中心相关api实现观察者模式
 *
 * @author 中国印
 * @date 2021/11/03
 */
public class EventBusCenter {

    private static final EventBus eventBus = new EventBus();

    private EventBusCenter() {
    }

    public static EventBus getInstance() {
        return eventBus;
    }

    /**
     * 注册(添加)观察者
     *
     * @param obj obj
     */
    public static void register(Object obj) {
        eventBus.register(obj);
    }

    /**
     * 移除观察者
     *
     * @param obj obj
     */
    public static void unRegister(Object obj) {
        eventBus.unregister(obj);
    }

    /**
     * 把消息推给观察者
     *
     * @param obj obj
     */
    public static void post(Object obj) {
        eventBus.post(obj);
    }

}
